Um eine Webapplikation von Grund auf zu entwickeln, sind viele Fertigkeiten erforderlich. Es beginnt bei der Infrastruktur, auf der die Applikation ausgeführt wird, und geht über das Backend mit der Businesslogik und Datenbanken für die Datenhaltung bis zum Frontend für die User-Interaktion, das im Browser mit HTML, CSS und JavaScript läuft. Hinzu kommen noch verschiedene Protokolle und Schnittstellen, die die einzelnen Systeme miteinander verbinden. Für jede Schicht, aus der eine Applikation besteht, gibt es verschiedene Programmiersprachen, Technologien, Bibliotheken und Frameworks.
Bei der Vielfalt der Möglichkeiten ist eine Kombination aus solidem Grundwissen, praktischer Erfahrung und Überblick wichtig. Eine Schritt-für-Schritt Anleitung oder einen perfekten Pfad vom Junior zum Senior gibt es nicht. Die Entwicklung hängt stark vom persönlichen Lerntyp, dem eigenen Umfeld und nicht zuletzt den Ressourcen ab, die Sie investieren können und wollen.
Einstieg in die Webentwicklung
Für den Einstieg in die schnelllebige Welt der Webentwicklung hat sich ein praxisorientierter Ansatz bewährt. Ein großer Vorteil der Webentwicklung ist, dass Sie sehr schnell greifbare Ergebnisse produzieren können und so Ihren Fortschritt auch sehen können. Dazu sollten Sie sich einen möglichst einfachen Technologiestack wählen und sich eine konkrete Aufgabenstellung suchen. Der Klassiker ist hier die To-do-App, bei der Sie Aufgaben erzeugen, anzeigen, modifizieren und wieder löschen können. Eine solche To-do-App ist nur eines von vielen Beispielen, dabei geht es weniger um das konkrete Thema, sondern vielmehr darum, dass Sie die Standardoperationen einer Webapplikation umsetzen. Diese werden typischerweise unter dem Akronym CRUD zusammengefasst. Es steht für Create, Read, Update und Delete.
Um mit der Entwicklung zu beginnen, benötigen Sie ein wenig Grundwissen über HTML, CSS und JavaScript. Für den Start reicht es jedoch, dass Sie wissen, wie Sie eine Webseite mit HTML strukturieren können, grundlegende Styles wie Ausrichtung, Positionierung und Farben sowie den Umgang mit Text-Styles.
-
Mozilla Developer Network [1]
-
W3Schools [2]
Eine Applikation sollten Sie jedoch nicht direkt auf diesen grundlegenden Technologien umsetzen, zu diesem Zweck gibt es Frameworks. Die meisten Entwickler machen ihre ersten Schritte in einem Framework und nicht mit den zugrunde liegenden Basistechnologien. Der Vorteil der Frameworks ist, dass Sie deutlich schneller Ergebnisse produzieren können, da diese für die meisten alltäglichen Problemstellungen wie Navigation, Formularbehandlung oder Zustandsverwaltung bereits fertige Lösungen bieten. Bei den Frameworks gibt es aktuell eine Handvoll etablierter Ansätze:
-
React [3]
-
Angular [4]
-
Vue [5]
-
Svelte [6]
Jedes dieser Frameworks bietet ein offizielles Tutorial an, das den Einstieg in die Arbeit mit dem Framework erleichtert. Zusätzlich dazu finden sich zahlreiche weitere Ressourcen rund um die Frameworks wie Blogartikel, Bücher und Videotrainings. Ein weiterer Vorteil der Frameworks ist, dass sie alle Werkzeuge mitbringen, die Sie für den Entwicklungs- und Releaseprozess benötigen, und diese auch schon mit einer sinnvollen Konfiguration versehen sind. Die wichtigsten dieser Werkzeuge sind die Bundler, allen voran webpack und Vite.
Zu einem Web-Frontend gehört auch immer ein Backend, das sich um das Speichern der Daten und viele weitere Aspekte wie Validierung, Authentifizierung und nicht zuletzt die serverseitige Businesslogik kümmert. Die Entwicklung von Backend-Applikationen ist eine Welt für sich und teilt sich wiederum in ein breites Spektrum auf. Als Webentwickler sollten Sie zumindest einen Einblick in die Komplexität der Backend-Welt haben. Es gibt auch immer mehr Entwickler, die den Pfad der Fullstack-Entwicklung einschlagen und sowohl im Frontend als auch im Backend unterwegs sind.
Eine naheliegende Wahl für den Einstieg in die Backend-Entwicklung ist die Plattform Node.js, auf der Sie mit JavaScript entwickeln können. Zu Beginn geht es hier vor allem um die Schnittstelle zum Frontend auf der einen Seite und die Anbindung einer Datenbank auf der anderen. Für Schnittstellen ist aktuell das REST-Paradigma etabliert. Es ist ein ressourcenbasierter Ansatz, der die Eigenschaften des HTTP-Protokolls nutzt, um Ressourcen über URL-Pfade abzubilden und mit den HTTP-Methoden die Art des Zugriffs zu beschreiben. Als Datenbanken kommen entweder klassische SQL-Datenbanken wie MySQL oder PostgreSQL, dokumentenorientierte Datenbanken wie MongoDB oder Key-Value-Stores wie Redis in Frage.
Der beste Weg, um Erfahrung in der Entwicklung zu sammeln, führt jedoch nicht über einfache CRUD-Applikationen, sondern über echte Projektarbeit. Im besten Fall arbeiten Sie in einem größeren Team an einer Applikation, dann haben Sie die Gelegenheit, die Technologien im praktischen Einsatz in einem größeren Verbund zu erleben. Der Vorteil ist hier, dass Sie mit verschiedensten Problemstellungen konfrontiert werden, die in einer einfachen Applikation nicht existieren. Das können komplexe Anforderungen des Kunden sein, aber auch Herausforderungen bei der Integration neuer Features in eine bestehende Codebasis oder Schnittstellen, die nicht für den geplanten Anwendungsfall gedacht sind.
In einem solchen Team können Sie von den anderen Teammitgliedern lernen und Ihr Wissen erweitern. Die besten Ansätze sind kooperative Formen der Softwareentwicklung in Form von Pair Programming, bei denen Sie direkt mit anderen Entwicklern zusammen an einem Feature arbeiten, oder Codereviews, bei denen Ihr Quellcode auf den Prüfstand gestellt und hinsichtlich Umsetzung, Integration und Architektur geprüft wird. Wertvoll werden solche Codereviews natürlich erst, wenn Sie auf Fehler aufmerksam gemacht und auch Strategien zur Behebung entwickelt werden.
In der Webentwicklung haben Sie Zugriff auf eine weltweite und sehr aktive Community, mit der Sie sich austauschen können. Dieser Austausch funktioniert sowohl asynchron über Diskussionsforen und Chats als auch synchron beispielsweise auf Konferenzen und anderen Veranstaltungen. Hier erfahren Sie nicht nur alles, was Sie über die neusten Entwicklungen wissen müssen, sondern haben auch Gelegenheiten, sich mit Gleichgesinnten zu unterhalten.
Kontinuierliche Weiterentwicklung auf dem Weg zum Experten
Der Übergang vom Einstieg zum Intermediate oder vom Junior zum Professional ist fließend. Es gibt keine Checkliste, die Sie abhaken können. Sie merken dennoch, dass die Schritte, die Sie machen, immer größer werden, die Probleme immer herausfordernder und Sie generell selbstsicherer werden. Fühlen Sie sich komfortabel in Ihrer Umgebung und mit Ihren Aufgaben, ist es an der Zeit, den nächsten Schritt zu gehen und Ihr Wissen weiter zu vertiefen.
Ein Bereich, der Sie während Ihrer gesamten Entwicklung begleiten wird, sind die Grundlagen der Programmiersprachen und Technologien. Haben Sie Ihre ersten Projekte umgesetzt, geht es an die Vertiefung Ihres Grundwissens. So können Sie sich beispielsweise mit dem korrekten semantischen Aufbau eines HTML-Dokuments beschäftigen. Oder Sie steigen tiefer in das Thema Styling von Web-Frontends mit CSS ein und lernen die Tricks und Kniffe von CSS sowie Werkzeuge wie den Präprozessor SCSS, CSS-Frameworks wie Tailwind oder generelle Konventionen wie BEM.
Auch beim Thema Programmierung gibt es viel zu lernen. Gerade der Bereich JavaScript bietet ein enormes Potenzial. Angefangen mit dem Umgang mit Events und asynchronen Programmflüssen, die Ihnen nahezu überall begegnen, sei es bei der User-Interaktion oder bei der Kommunikation mit einem Backend. Des Weiteren sollten Sie sich mit der Modularisierung Ihres Quellcodes beschäftigen und ihn in Klassen, Funktionen und Module aufteilen und dafür das Modulsystem verwenden. Noch besser als JavaScript ist TypeScript, da es Ihnen zusätzlich zum Funktionsumfang von JavaScript noch Typsicherheit bietet. Damit können Sie die Datentypen für Variablen und Funktionssignaturen festlegen. Der TypeScript Compiler kann aufgrund dieser Informationen Ihren Quellcode überprüfen und weist Sie noch vor der Ausführung Ihrer Applikation auf Probleme hin. Einige Frameworks wie Angular setzen standardmäßig auf TypeScript, andere wie React oder Vue unterstützen sowohl JavaScript als auch TypeScript, wobei Sie in jedem Fall auf die typsichere Variante setzen sollten.
Haben Sie ihre ersten Aufgabenstellungen in der Welt der JavaScript-Frameworks erledigt, gilt es, das Ökosystem um die Frameworks zu meistern. Neben den eigentlichen Frameworks gibt es noch zahlreiche zusätzliche Pakete und Erweiterungen, die Ihnen bei der Entwicklung von Applikationen helfen. Typische Beispiele sind Bibliotheken zum State Management oder Komponentenbibliotheken wie:
-
Redux: zentrales State Management für verschiedene Frameworks [5]
-
NgRx: ein Angular-Framework, das unter anderem reaktives State Management bietet [6]
-
Pina: eine flexible Lösung für zentrales State Management in Vue [7]
-
Material-UI: eine Komponentensammlung für React [8]
-
PrimeVue: eine moderne Komponentenbibliothek für Vue [9]
-
Angular Material: Material-Design-Komponenten für Angular [10]
Mit dem Umfang Ihrer Aufgabenstellungen steigt auch ihre Auswirkung auf das Gesamtsystem und Sie müssen sich immer häufiger auf der architektonischen Ebene der Applikation bewegen. Die Architektur einer Applikation betrifft ihren Aufbau und die Struktur einer Applikation, wie Daten verarbeitet werden und wie die einzelnen Teile miteinander interagieren. Die Architektur beeinflusst die Skalierbarkeit, Wartbarkeit, Sicherheit und Performance des Gesamtsystems ganz entscheidend.
Konkrete Ausprägungen von Architekturmustern sind Event-Systeme zur Kommunikation in und zwischen Applikationsteilen. Eine komponentenbasierte Architektur des Frontends, bei der die grafische Oberfläche aus einer Baumstruktur aus vielen kleinen lose gekoppelten Komponenten besteht, zwischen denen Informationen fließen. Oder Fullstack-Applikationen, bei denen ein Teil der Zuständigkeiten des Frontends zum Server verschoben werden und der Server das eigentlich für den Browser gedachte Framework ausführt und serverseitig die Strukturen für den Client vorbereitet. Dieser Ansatz wird als serverseitiges Rendern (SSR) bezeichnet und ist mittlerweile in allen gängigen Frontend-Frameworks als optionale Erweiterung verfügbar.
Je größer eine Applikation wird, desto wichtiger wird auch die Qualität des Quellcodes. Sie sollten Entscheidungen zu Style und Konsistenz Ihres Quellcodes treffen und Regeln für die Formatierung festlegen. Ein unverzichtbares Hilfsmittel hierbei ist ESlint, ein Werkzeug zur statischen Codeanalyse, das dabei hilft, einen festgelegten Codestandard im Bereich von JavaScript und TypeScript durchzusetzen. Damit Sie nicht jeden Aspekt des Codestyles selbst festlegen müssen, gibt es etablierte Standards wie den AirBnB JavaScript Style, für den es auch ESlint-Regelsätze gibt.
Neben der Codequalität gilt es auch, die Features einer Applikation in einer hohen Qualität abzuliefern. Ein Mittel, um das sicherzustellen, sind automatisierte Tests auf verschiedenen Ebenen. Diese reichen von leichtgewichtigen Unit-Tests bis zu umfangreichen Integrations- und Ende-zu-Ende-Tests. In der Webentwicklung gibt es dafür verschiedene Testframeworks. Im Fall von Unit-Tests können Sie beispielsweise auf Vitest oder Jest zurückgreifen, die sowohl JavaScript als auch TypeScript unterstützen und die Sie unabhängig vom Framework Ihrer Applikation einsetzen können. Für Ende-zu-Ende-Tests kommen Werkzeuge wie Cypress oder Playwright zum Einsatz. Sie schlüpfen in die Rolle der Benutzer Ihrer Applikation und überprüfen die verschiedenen Workflows aus der Browserperspektive.
Generell ist die Automatisierung von wiederkehrenden Aufgaben im Projekt ein wichtiger Faktor, um die Effizienz im Entwicklungsprozess zu steigern. Dabei sind automatisierte Tests ein Baustein, eine solide CI/CD-Pipeline ein weiterer. Diese Pipeline bereitet die Applikation für den Test- und Produktivbetrieb vor, führt automatisierte Überprüfungen durch und deployt die Applikation auf das Zielsystem.
Ein weiteres Thema, das mindestens genauso wichtig ist wie die Qualitätssicherung in einer Applikation, ist Sicherheit. In Webapplikationen haben Sie häufig mit sensiblen Daten Ihrer Nutzer zu tun, die Sie schützen müssen. Die Grundlagen bilden die sichere Übertragung von Daten über verschlüsselte Verbindungen, die Handhabung von Passwörtern und Schlüsseln sowie der Schutz vor gängigen Schwachstellen wie Cross-site Scripting, SQL Injections und Cross-site Request Forgery. Eine gute Anlaufstelle, wenn es um Sicherheit geht, ist OWASP (Open Worldwide Application Security Project). Es veröffentlicht regelmäßig die häufigsten Schwachstellen in Form der OWASP Top 10 [13] und stellt Ressourcen zur Identifikation, Vermeidung und Behebung dieser Schwachstellen zur Verfügung.
Die Ressourcen für die Weiterentwicklung für erfahrenere Entwickler sind deutlich weniger als für den Einstieg. Ein Grund hierfür ist, dass sie deutlich tiefer gehen müssen und auch die Qualitätsansprüche steigen. Dennoch können Sie gerade bei professionellen Trainingsplattformen oder auch auf Workshops bei Konferenzen fündig werden.
Eine weitere gute Möglichkeit zur Weiterentwicklung ist die praktische Arbeit an größeren Projekten zusammen mit anderen Entwicklern. Hier können Sie größere Aufgaben und die Verantwortung für Teilprojekte übernehmen. Zum Üben eignen sich außerdem komplexere Aufgabenstellungen, die Sie unabhängig vom Arbeitsalltag lösen können. Hier eignen sich vor allem spezialisierte Problemstellungen, die aufwendigere Lösungsansätze benötigen. Hier sollten Sie sich vor allem auf eine saubere Architektur konzentrieren.
Das Ende der Fahnenstange? Das eigene Wissen weitergeben!
Irgendwann haben Sie dann alles gesehen, was es in der Webentwicklung zu sehen gibt, oder? Dieser Zeitpunkt wird in der Realität niemals eintreten, denn die Problemstellungen und die möglichen Lösungsansätze sind so vielfältig, dass Ihnen garantiert niemals langweilig werden wird. Dennoch haben Sie irgendwann so viel Erfahrung gesammelt, dass Sie für nahezu jedes Problem eine Lösung finden können. Hier wird es dann auch irgendwann schwierig, passende Ressourcen für die Weiterentwicklung zu finden. Normalerweise suchen Sie sich in dieser Karrierestufe Ihre Problemstellungen selbst und entwickeln passende Lösungen dafür.
In Projekten stehen Sie an der Spitze und beteiligen sich maßgeblich an der Gestaltung der Architektur. Sie übernehmen die Verantwortung und sorgen dafür, dass die Qualität des Produkts so hoch wie möglich ist. Meist kümmern Sie sich um die anspruchsvollen Aufgaben und sind die Person, die gefragt wird, wenn man nicht mehr weiterweiß. Das bedeutet, dass Sie mit den wirklich spannenden Problemstellungen im Projekt konfrontiert werden und im Team eine Lösung dafür entwickeln müssen.
Spätestens jetzt ist es an der Zeit, Ihr Wissen an andere weiterzugeben. Das kann in Form eines Chefarchitekten in einem Projekt sein, der weniger erfahrene Kollegen anleitet und ihnen hilft, sich weiterzuentwickeln. Oder man gibt sein Wissen in Form von Schulungen oder anderen, öffentlichen Kanälen weiter. Wenn es darum geht, Wissen zu vermitteln, müssen Sie sich intensiv mit dem jeweiligen Thema auseinandersetzen, um die Zusammenhänge erklären und auf Fragen antworten zu können.
Wie beeinflusst KI unseren Lernpfad?
Die Webtechnologien werden stetig weiterentwickelt und fast im Tagesrhythmus tauchen neue Frameworks und Bibliotheken auf oder verschwinden wieder in der Bedeutungslosigkeit. Und als ob das noch nicht genug wäre, haben wir mit der zunehmenden Popularität und Verfügbarkeit von Generative AI ein weiteres, sehr mächtiges Werkzeug erhalten. Doch wie verändert KI den Arbeitsalltag und wie wirkt sie sich auf die Entwicklung von Personen aus?
Werkzeuge wie ChatGPT, Gemini, Claude, GitHub CoPilot und Cursor machen das Entwicklerleben deutlich angenehmer, da Sie damit einfache und sich wiederholende Aufgaben gut auslagern können. Sie können sich Datenbankstrukturen, Codeblöcke und ganze grafische Oberflächen von KI-Werkzeugen generieren lassen. Auch in der Wissensvermittlung spielen diese Werkzeuge eine immer größere Rolle. Dennoch ist bei allen Vorzügen auch Vorsicht geboten. Zum einen sind die KI-Tools noch mehr Werkzeuge, die Sie lernen müssen. Zum anderen beschleunigt die KI die Entwicklung noch weiter und erhöht die Menge an Informationen. Was noch erschwerend hinzu kommt: Sie können den Informationen nicht uneingeschränkt vertrauen. Das gilt sowohl für die Antworten auf Ihre Prompts in einem Chatinterface als auch beim generierten Quellcode.
Stay tuned
Bei neuen Artikel & Eventupdates informiert werden:
Fazit
Die Webentwicklung ist ein spannendes Betätigungsfeld mit sehr vielen Facetten und Möglichkeiten. Diese reichen vom Backend-Spezialisten über den Full-Stack-Allrounder bis hin zum UI- und UX-Experten.
Es ist auch nicht so, dass Sie einen einmal eingeschlagenen Pfad für Ihre gesamte Karriere beibehalten müssen. Sie können sich jederzeit umorientieren und andere Bereiche der Webtechnologien erkunden. Das Zusammenspiel der einzelnen Systeme und die architektonischen Prinzipien helfen Ihnen dabei.
Allerdings ist es unerlässlich, dass Sie sich in der schnell voranschreitenden IT-Welt kontinuierlich weiterentwickeln und am Ball bleiben, da Sie sonst schnell den Anschluss an die aktuellen Trends und Entwicklungen verlieren.
Links & Literatur
[1] Mozilla Developer Network: https://developer.mozilla.org/en-US/docs/Learn_web_development
[2] W3Schools: https://www.w3schools.com
[3] React: https://react.dev
[4] Angular: https://angular.dev
[5] Vue: https://vuejs.org
[6] Svelte: https://svelte.dev
[7 ]Redux: https://redux.js.org
[8] NgRx: https://ngrx.io
[9] Pina: https://pinia.vuejs.org
[10] Material-UI: https://mui.com
[11] PrimeVue: https://primevue.org
[12] Angular Material: https://material.angular.io
[13] OWASP Top 10: https://owasp.org/www-project-top-ten